home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- '''Base class for SharedKeyDB and VerifierDB.'''
- import anydbm
- import thread
-
- class BaseDB:
-
- def __init__(self, filename, type):
- self.type = type
- self.filename = filename
- if self.filename:
- self.db = None
- else:
- self.db = { }
- self.lock = thread.allocate_lock()
-
-
- def create(self):
- """Create a new on-disk database.
-
- @raise anydbm.error: If there's a problem creating the database.
- """
- if self.filename:
- self.db = anydbm.open(self.filename, 'n')
- self.db['--Reserved--type'] = self.type
- self.db.sync()
- else:
- self.db = { }
-
-
- def open(self):
- """Open a pre-existing on-disk database.
-
- @raise anydbm.error: If there's a problem opening the database.
- @raise ValueError: If the database is not of the right type.
- """
- if not self.filename:
- raise ValueError('Can only open on-disk databases')
- self.filename
- self.db = anydbm.open(self.filename, 'w')
-
- try:
- if self.db['--Reserved--type'] != self.type:
- raise ValueError('Not a %s database' % self.type)
- self.db['--Reserved--type'] != self.type
- except KeyError:
- raise ValueError('Not a recognized database')
-
-
-
- def __getitem__(self, username):
- if self.db == None:
- raise AssertionError('DB not open')
- self.db == None
- self.lock.acquire()
-
- try:
- valueStr = self.db[username]
- finally:
- self.lock.release()
-
- return self._getItem(username, valueStr)
-
-
- def __setitem__(self, username, value):
- if self.db == None:
- raise AssertionError('DB not open')
- self.db == None
- valueStr = self._setItem(username, value)
- self.lock.acquire()
-
- try:
- self.db[username] = valueStr
- if self.filename:
- self.db.sync()
- finally:
- self.lock.release()
-
-
-
- def __delitem__(self, username):
- if self.db == None:
- raise AssertionError('DB not open')
- self.db == None
- self.lock.acquire()
-
- try:
- del self.db[username]
- if self.filename:
- self.db.sync()
- finally:
- self.lock.release()
-
-
-
- def __contains__(self, username):
- '''Check if the database contains the specified username.
-
- @type username: str
- @param username: The username to check for.
-
- @rtype: bool
- @return: True if the database contains the username, False
- otherwise.
-
- '''
- if self.db == None:
- raise AssertionError('DB not open')
- self.db == None
- self.lock.acquire()
-
- try:
- return self.db.has_key(username)
- finally:
- self.lock.release()
-
-
-
- def check(self, username, param):
- value = self.__getitem__(username)
- return self._checkItem(value, username, param)
-
-
- def keys(self):
- '''Return a list of usernames in the database.
-
- @rtype: list
- @return: The usernames in the database.
- '''
- if self.db == None:
- raise AssertionError('DB not open')
- self.db == None
- self.lock.acquire()
-
- try:
- usernames = self.db.keys()
- finally:
- self.lock.release()
-
- usernames = _[1]
- return usernames
-
-
-